Communication terminals such as computers, telephones, and conferencing terminals are driven by processors and controllers that have separate or shared clocks within each terminal. However, the clock for each terminal operates independently of the clocks of other terminals. Even if clocks of two different terminals are synchronized, they will drift apart over time because the two clocks will count time at slightly different speeds.
Computer clock rates differ in small amounts. One clock almost always runs faster than the other. While the difference in clock rates can be quite small, these small differences can quickly add-up and become a significant problem, especially in systems that perform ongoing clock based calculations over a long period of time.
Some systems allow communication terminals to be synchronized to a common master clock. However, this is typically done using a special signal or a separate communications channel. The special provisions increase the cost of the system either in signaling and energy or in hardware. Even with a special clock signal, the clock signal will require some time to travel from the master clock to each communications terminal. This is the propagation delay. If the terminals are at different distances from the master clock, then the clock signals will be received with different propagation delays, so the terminal will not be synchronized unless the differences in propagation delay can be determined. In some cases, such as protected environments, computer software does not have control over the clock on the local system.
If the path between the two clocks is not known, then the propagation delay cannot be compensated. The difficulty in synchronizing is made worse if the clock signals travel across a typical data packet network. In Ethernet and many other types of networks, the path from one terminal to another changes depending on network traffic loads and decisions made at routers in the path. The propagation delay may also vary depending on the responsiveness of the routers on the path. With Internet traffic routing may vary even more. Because the path from one terminal to another may be different at different times and the terminals on that path may operate with different speeds, it is difficult to accurately synchronize clocks between two different communication terminals using the packet data networks.